<!DOCTYPE HTML PUBLIC "-//ORA//DTD CD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>[Chapter 4] 4.12 New JDK Utilities</TITLE>
<META NAME="author" CONTENT="David Flanagan">
<META NAME="date" CONTENT="Thu Jul 31 15:51:18 1997">
<META NAME="form" CONTENT="html">
<META NAME="metadata" CONTENT="dublincore.0.1">
<META NAME="objecttype" CONTENT="book part">
<META NAME="otheragent" CONTENT="gmat dbtohtml">
<META NAME="publisher" CONTENT="O'Reilly &amp; Associates, Inc.">
<META NAME="source" CONTENT="SGML">
<META NAME="subject" CONTENT="Java">
<META NAME="title" CONTENT="Java in a Nutshell">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
</HEAD>
<body vlink="#551a8b" alink="#ff0000" text="#000000" bgcolor="#FFFFFF" link="#0000ee">

<DIV CLASS=htmlnav>
<H1><a href='index.htm'><IMG SRC="gifs/smbanner.gif"
     ALT="Java in a Nutshell" border=0></a></H1>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch04_11.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><B><FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1">Chapter 4<br>What's New in Java 1.1</FONT></B></TD>
<td width=172 align=right valign=top><A HREF="ch05_01.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
</table>

&nbsp;
<hr align=left width=515>
</DIV>
<DIV CLASS=sect1>
<h2 CLASS=sect1><A CLASS="TITLE" NAME="JNUT2-CH-4-SECT-12">4.12 New JDK Utilities</A></h2>

<P CLASS=para>
JDK 1.1 includes a number of new tools.  In the discussion
of applets above, we've already seen <I CLASS=emphasis>jar</I> for creating
JAR archives and <I CLASS=emphasis>javakey</I> for adding digital
signatures to JAR archives.  In fact, <I CLASS=emphasis>javakey</I> can do
much more than that--it is a very flexible tool for managing
a database of entities, generating keys and certificates,
and generating digital signatures.

<P CLASS=para>
<I CLASS=emphasis>serialver</I> is a new tool used in conjunction with
object serialization.  When an object is deserialized, it is
important to verify that the version of the class file
for that object matches the version that was used to
serialize it.  This is done by computing a unique identifier
for the class and encoding it in a private variable of the
class.  When an incompatible change is made to the class, a
new unique identifier is computed, and the new value is
stored in the private variable.  It is the <I CLASS=emphasis>serialver</I>
tool that is used to compute this unique identifier.

<P CLASS=para>
<I CLASS=emphasis>native2ascii</I> is a tool for programmers who
program in a locale that uses a non-ASCII file encoding.
The <I CLASS=emphasis>javac</I> compiler can only compile files encoded in
ASCII, with all Unicode characters converted to the
<tt CLASS=literal>\u</tt><I CLASS=emphasis>xxxx</I> format.  What <I CLASS=emphasis>native2ascii</I> does is to convert its input file to Unicode, and then output
that Unicode version as an ASCII file that uses the
<tt CLASS=literal>\u</tt> escape for all non-ASCII Unicode characters.
After you process a locally-encoded file with
<I CLASS=emphasis>native2ascii</I>, <I CLASS=emphasis>javac</I> can compile it.

<P CLASS=para>
In addition to the tools described here, JDK 1.1 also
includes two new programs, <I CLASS=emphasis>rmic</I> and
<I CLASS=emphasis>rmiregistry</I>, that are used in conjunction with
Remote Method Invocation.  They will be documented in
<I CLASS=emphasis>Java Enterprise in a Nutshell</I>.

</DIV>


<DIV CLASS=htmlnav>

<P>
<HR align=left width=515>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch04_11.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><a href="index.htm"><img src='gifs/txthome.gif' border=0 alt='Home'></a></td>
<td width=172 align=right valign=top><A HREF="ch05_01.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
<tr>
<td width=172 align=left valign=top>Applet Changes</td>
<td width=171 align=center valign=top><a href="index/idx_0.htm"><img src='gifs/index.gif' alt='Book Index' border=0></a></td>
<td width=172 align=right valign=top>Inner Classes and Other New Language Features</td>
</tr>
</table>
<hr align=left width=515>

<IMG SRC="gifs/smnavbar.gif" USEMAP="#map" BORDER=0> 
<MAP NAME="map"> 
<AREA SHAPE=RECT COORDS="0,0,108,15" HREF="../javanut/index.htm"
alt="Java in a Nutshell"> 
<AREA SHAPE=RECT COORDS="109,0,200,15" HREF="../langref/index.htm" 
alt="Java Language Reference"> 
<AREA SHAPE=RECT COORDS="203,0,290,15" HREF="../awt/index.htm" 
alt="Java AWT"> 
<AREA SHAPE=RECT COORDS="291,0,419,15" HREF="../fclass/index.htm" 
alt="Java Fundamental Classes"> 
<AREA SHAPE=RECT COORDS="421,0,514,15" HREF="../exp/index.htm" 
alt="Exploring Java"> 
</MAP>
</DIV>

</BODY>
</HTML>
